জাভা জেনেরিক্স ব্যবহার করার সময় টাইপ প্যারামিটারগুলোর নামকরণ একটি গুরুত্বপূর্ণ দিক। সঠিক নামকরণ কনভেনশন অনুসরণ করলে কোড আরও বোধগম্য, রিডেবল এবং মেইনটেইনেবল হয়।
জাভায় টাইপ প্যারামিটারের জন্য কিছু সাধারণভাবে গৃহীত নামকরণ প্যাটার্ন রয়েছে। এগুলো ছোট এবং সাধারণত এক অক্ষরের হয়। তবে এগুলো টাইপ প্যারামিটারের উদ্দেশ্য অনুযায়ী ইঙ্গিতপূর্ণ হয়। নিচে জাভা ডেভেলপারদের মধ্যে প্রচলিত টাইপ প্যারামিটার নামকরণ কনভেনশন উল্লেখ করা হলো:
Symbol | Meaning/Use Case |
---|---|
T | Type (Generic data type) |
E | Element (Used in Collections like List) |
K | Key (Used in key-value mappings) |
V | Value (Used in key-value mappings) |
N | Number (Numeric types like Integer, Double) |
R | Result (Return type or output type) |
public class Box<T> {
private T item;
public void setItem(T item) {
this.item = item;
}
public T getItem() {
return item;
}
public static void main(String[] args) {
Box<String> stringBox = new Box<>();
stringBox.setItem("Hello");
System.out.println(stringBox.getItem());
}
}
T
এখানে একটি সাধারণ টাইপ প্যারামিটার যা যেকোনো ডেটা টাইপকে নির্দেশ করে।E
(Element)public class CustomList<E> {
private List<E> elements = new ArrayList<>();
public void add(E element) {
elements.add(element);
}
public E get(int index) {
return elements.get(index);
}
public static void main(String[] args) {
CustomList<String> list = new CustomList<>();
list.add("Java");
list.add("Generics");
System.out.println(list.get(0));
}
}
E
এখানে কালেকশনের উপাদান (Element) নির্দেশ করতে ব্যবহৃত হয়েছে।K
(Key) এবং V
(Value)public class CustomMap<K, V> {
private Map<K, V> map = new HashMap<>();
public void put(K key, V value) {
map.put(key, value);
}
public V get(K key) {
return map.get(key);
}
public static void main(String[] args) {
CustomMap<Integer, String> map = new CustomMap<>();
map.put(1, "One");
map.put(2, "Two");
System.out.println(map.get(1));
}
}
K
: মেপের কী (Key) নির্দেশ করে।V
: মেপের ভ্যালু (Value) নির্দেশ করে।N
(Number) এর ব্যবহারpublic class NumericBox<N extends Number> {
private N number;
public NumericBox(N number) {
this.number = number;
}
public double doubleValue() {
return number.doubleValue();
}
public static void main(String[] args) {
NumericBox<Integer> intBox = new NumericBox<>(10);
System.out.println(intBox.doubleValue()); // 10.0
}
}
N
এখানে সংখ্যা টাইপের ডেটা (যেমন Integer, Double) নির্দেশ করতে ব্যবহৃত হয়েছে।R
(Result) এর ব্যবহারpublic class ResultCalculator<T, R> {
public R calculate(T input, Function<T, R> function) {
return function.apply(input);
}
public static void main(String[] args) {
ResultCalculator<Integer, String> calculator = new ResultCalculator<>();
String result = calculator.calculate(10, i -> "Result: " + (i * 2));
System.out.println(result); // Result: 20
}
}
R
এখানে মেথডের আউটপুট টাইপ নির্দেশ করে।যদি একটি ক্লাস বা মেথডে একাধিক টাইপ প্যারামিটার প্রয়োজন হয়, তবে তাদের উদ্দেশ্য অনুযায়ী নামকরণ করা উচিত।
public class Pair<K, V> {
private K key;
private V value;
public Pair(K key, V value) {
this.key = key;
this.value = value;
}
public K getKey() {
return key;
}
public V getValue() {
return value;
}
public static void main(String[] args) {
Pair<String, Integer> pair = new Pair<>("Age", 25);
System.out.println("Key: " + pair.getKey() + ", Value: " + pair.getValue());
}
}
জেনেরিক টাইপ প্যারামিটার নামকরণের ক্ষেত্রে জাভার প্রচলিত কনভেনশন অনুসরণ করলে কোড আরও সহজবোধ্য ও কার্যকর হয়। ছোট এবং অর্থবোধক টাইপ প্যারামিটার ব্যবহার করলে তা কোডের কার্যকারিতা বোঝার পাশাপাশি টাইপ সেফটি নিশ্চিত করতে সাহায্য করে।
Read more